package it.unisa.unibox.bridge;

import it.unisa.unibox.beans.Account;
import it.unisa.unibox.beans.Amministratore;
import it.unisa.unibox.beans.ResponsabileValutazione;
import it.unisa.unibox.beans.Ricercatore;

import java.sql.SQLException;

public interface IAutenticazioneManager extends IManager {
	
	/**
	 * Effettua l'autenticazione
	 * @param nome 
	 * @param psw
	 * @return l'account loggato se trovato nel db, null altrimenti
	 * @throws SQLException
	 */
	public Account login(String nome, String psw) throws SQLException;
	
	/**
	 * Restitusce il ricercatore associato all'account
	 * @param account 
	 * @return ricercatore, null se non trovato
	 * @throws SQLException
	 */
	public Ricercatore retrieveRicercatore(Account account)throws SQLException;
	
	/**
	 * Restitusce l'amministratore associato all'account
	 * @param account 
	 * @return amministratore, null se non trovato
	 * @throws SQLException
	 */
	public Amministratore retrieveAmministratore(Account account) throws SQLException;
	
	/**
	 * Restitusce il responsabile valutazione associato all'account
	 * @param account 
	 * @return responsabile, null se non trovato
	 * @throws SQLException
	 */
	public ResponsabileValutazione retrieveResponsabileValutazione(Account account) throws SQLException;
}
